"""
通过python程序对计算机的文件进行各种操作-流操作
"""
"""
文件的读取-java里面也有文件按照文件路径
    JAVA File file=new File(路径)
    python操作 文件标准库 
        打开文件-open(路径)
        读取文件-文件.read（将文件读取成为字符串）
        关闭文件-手动关闭文件，不然内存就会读取特别特别多文件
            文件.close
"""
file_name="demo.text"
t = open(file_name,encoding="utf-8")
# 这里没有名字会报错 就要写异常处理
# try:
#     file_name="121212.text"
#     open(file_name)
# except Exception as e:
#     raise e
print(t.read())
t.close()

"""
上面代码java python都能用这个逻辑做文件读取处理
    python还有特定的语法做文件处理  with...as 语句专门用于文件操作
    这样好处就是不用关闭文件 自动关
    配合try except 就能做文件读取
"""
with open(file_name,encoding="utf-8") as file:
    print(file.read())

file_name="asasas.text"
try:
    with open(file_name) as file:
        print(file.read())
except FileNotFoundError:
    print("当前文件不存在")


"""
文件的读取-
    纯文本文件和二进制文件，默认是以文本形式打开
        纯文本文件-可以指定读取编码，这样不会出现中文乱码
"""
file_name="demo.text"
try:
    with open(file_name,encoding="utf-8") as file:
        print(file.read())
except FileNotFoundError:
    print("当前文件不存在")

"""
文本文件可能会很大，就需要设置读取行数，指定读取数量这样不会内存溢出
"""
try:
    with open(file_name,encoding="utf-8") as file:
        file_content=''
        while True:
            # comtent=file.read(1)
            comtent=file.readline()
            if not comtent:
                print("内容已经读取完毕")
                break
            file_content+=comtent
        print(file_content)
except FileNotFoundError:
    print("当前文件不存在")
"""
读取除了read还有readline,readLine就是read(1)
也能用for循环 直接读取一行一行读取 但是会有很多空白行出现-rstrip去除空行
还能用方式readLines,就是多行读取，但是返回值是列表，每一行元素就是一行
"""
try:
    with open(file_name,encoding="utf-8") as file:
        file_content=''
        for content in file:
            file_content=content.rstrip()
            print(file_content)
        print("for循环读取")
except FileNotFoundError:
    print("当前文件不存在")

try:
    with open(file_name,encoding="utf-8") as file:
        file_content=''
        for content in file.readlines():
            file_content=content.rstrip()
            print(file_content)
except FileNotFoundError:
    print("当前文件不存在")

"""
文件写操作-write操作  mode="w"
    首先需要打开文件，不指定就是读取操作，写入的时候需要指定为写操作
    如果写入的是文本字符串，那么需要传递字符串作为参数,
    写入时原本文件不存在会创建文件，存在时清空重新写入
    write不会自动换行，需要写换行符\n让他换行
文件写操作-追加操作  mode="a"
    追加和write一样没有也会重新新增文件
    但是追加会在文档末尾追加
"""
file_name="file_write.text"
try:
    with open(file_name,encoding="utf-8",mode="w") as file:
        file.write("hello,how are you\n")
        file.write("hello,how are you\n")
        file.write("hello,how are you\n")
        file.write("hello,how are you\n")
except FileNotFoundError:
    print("当前文件不存在")
try:
    with open(file_name,encoding="utf-8",mode="a") as file:
            file.write("append,how are you\n")
            file.write("append,how are you\n")
            file.write("append,how are you\n")
            file.write("append,how are you\n")
except FileNotFoundError:
    print("当前文件不存在")
